package com.kewu.system.service.impl;

import com.kewu.system.dao.SysUserDao;
import com.kewu.system.service.SysUserService;
import org.springframework.stereotype.Service;
import com.github.pagehelper.PageInfo;
import lombok.RequiredArgsConstructor;
import com.github.pagehelper.PageHelper;
import com.kewu.common.global.request.PageParam;
import com.kewu.system.api.entity.SysUser;

/**
 * (SysUser)表服务实现类
 *
 * @author wangning
 * @since 2024-05-28 09:22:19
 */
@Service("sysUserService")
@RequiredArgsConstructor
public class SysUserServiceImpl implements SysUserService {
    private final SysUserDao sysUserDao;

    /**
     * 通过ID查询单条数据
     *
     * @param userId 主键
     * @return 实例对象
     */
    @Override
    public SysUser queryById(Integer userId) {
        return sysUserDao.queryById(userId);
    }

    /**
     * 分页查询
     *
     * @param sysUser 筛选条件
     * @param pageParam      分页参数
     * @return 查询结果
     */
    @Override
    public PageInfo<SysUser> page(SysUser sysUser, PageParam pageParam) {
        PageHelper.startPage(pageParam.getPageNum(), pageParam.getPageSize());
        return new PageInfo<>(sysUserDao.selectAll(sysUser));
    }

    /**
     * 新增数据
     *
     * @param sysUser 实例对象
     * @return 实例对象
     */
    @Override
    public SysUser add(SysUser sysUser) {
        sysUserDao.add(sysUser);
        return sysUser;
    }

    /**
     * 修改数据
     *
     * @param sysUser 实例对象
     * @return 实例对象
     */
    @Override
    public SysUser update(SysUser sysUser) {
        sysUserDao.update(sysUser);
        return queryById(sysUser.getUserId());
    }

    /**
     * 通过主键删除数据
     *
     * @param userId 主键
     * @return 是否成功
     */
    @Override
    public boolean delete(Integer userId) {
        return sysUserDao.delete(userId) > 0;
    }
}
